package co.com.travelsoft.ati.daos;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import co.com.travelsoft.ati.entities.Ciudades;
import co.com.travelsoft.ati.entities.Paises;
import co.com.travelsoft.ati.utils.FabricaSesionesUtil;

public class CiudadesDAO {
	
	public static void crear(Ciudades ciudades){
		Session sesion = FabricaSesionesUtil.getInstancia().getCurrentSession();
		sesion.save(ciudades);
	}
	
	public static Ciudades buscarPorId(Ciudades ciudades){
		Session sesion = FabricaSesionesUtil.getInstancia().getCurrentSession();
		return  (Ciudades)sesion.createQuery("select c from Ciudades as c where c.codigo="+ciudades.getCodigo()).uniqueResult();
	}
	
	public static List<Ciudades> listar(){
		Session sesion = FabricaSesionesUtil.getInstancia().getCurrentSession();
		Transaction trx = sesion.beginTransaction();
		List<Ciudades> ciudades =  sesion.createQuery("select c from Ciudades as c").list();
		trx.commit();
		return ciudades;
	}
	
	public static List<Ciudades> listarPorPais(Paises pais){
		Session sesion = FabricaSesionesUtil.getInstancia().getCurrentSession();
		return sesion.createQuery("select c from Ciudades as c.paises.nombre="+pais.getNombre()).list();
	}
	
	public static void actualizar(Ciudades ciudades){
		Session s = FabricaSesionesUtil.getInstancia().getCurrentSession();
		s.update(ciudades);
	}
	
	public static void borrar(Ciudades ciudades){
		Session s = FabricaSesionesUtil.getInstancia().getCurrentSession();
		s.delete(ciudades);
	}
	
	public static List<Ciudades> buscarPorPaisId(Long paisId){
		
		Session sesion = FabricaSesionesUtil.getInstancia().getCurrentSession();
		Transaction trx = sesion.beginTransaction();
		List <Ciudades> listaCiudades =  sesion.createQuery("select c from Ciudades as c where c.codigopais = "+paisId).list();
		trx.commit();
        
        return listaCiudades;
		
	}

}
